Metodologia Quantitativa (UPF)
Gairebé sempre, un ggplot consisteix en tres capes1:
Opcionalment, afegim més capes, com :
Columna: facet_wrap(facets=vars(v),ncol=1)
Files: facet_wrap(facets=vars(v), nrow=1)
elecc19 |>
filter(nombre_de_comunidad == "Cataluña") |>
mutate(erc_per = erc_sobiranistes / total_votantes * 100,
psoe_per = psoe / total_votantes * 100,
hab = if_else(poblacion > 15000, "Ciutat", "Poble")) |>
ggplot(aes(x = erc_per, y = psoe_per, col = hab)) +
geom_point() +
facet_wrap(facets = vars(nombre_de_provincia),
nrow = 1, scales = "free")Cap: facet_wrap(facets=vars(v)) (CatSalut)
library(lubridate)
covid <- read_csv("data/Dades_di_ries_de_COVID-19_per_comarca.csv")
covid |>
filter(NOM != "Sense especificar") |>
mutate(DATA = as.Date(DATA, format = "%d/%m/%Y"),
MONTH = month(DATA),
YEAR = year(DATA)) |>
group_by(NOM, MONTH, YEAR) |>
summarize(casos = sum(CASOS_CONFIRMAT)) |>
mutate(DATE = as.Date(paste0("01/", MONTH, "/", YEAR), format = "%d/%m/%Y")) |>
ggplot(aes(x = DATE, y = casos)) +
geom_line() +
facet_wrap(facets = vars(NOM), scales = "free")Files i columnes en una graella: facet_grid()
Girar eixos: coord_flip()
Canviar límits: coord_cartesian(ylim = c(30,40))
Més fàcil: ylim(30,40) / xlim(30000,70000)
Funcions d’escala:
scale_x_ or scale_y_discrete() or continuous() (and others).Arguments de la funció:
breaks: Posició dels talls.labels: Etiquetes dels talls.name: Títol d’eix.limits: Límits de l’escala.Num: scale_x_continuous()
Cat: scale_x_discrete()
Percentatges: Numèrica, de 0 a 1.
elecc19 |>
filter(nombre_de_comunidad == "Cataluña") |>
mutate(erc_per = erc_sobiranistes / total_votantes,
psoe_per = psoe / total_votantes,
hab = if_else(poblacion > 15000, "Ciutat", "Poble")) |>
ggplot(aes(x = erc_per, y = psoe_per, col = hab)) +
geom_point() +
scale_y_continuous(labels = scales::label_percent())Funció d’escala: Brewer.
scale_color_brewer()scale_fill_brewer()Arguments de la funció (veure ajuda):
type: "seq", "div" or "qual".palette: "Greens", "Set1", "Spectral" (1, 2…).direction: 1 or -1.Funció d’escala: Brewer (see web).
Funció d’escala: Gradient1.
scale_color_gradient()scale_fill_gradient()Arguments de la funció:
low: color of the lowest value.high: color of the highest value.Funció d’escala: Gradient.
Funció d’escala: Manual.
scale_color_manual()scale_fill_manual()Arguments de la funció:
values: color de cada categoria.labels: nom de cada categoria.Funció d’escala: Manual.
elecc19 |>
filter(nombre_de_comunidad == "Cataluña") |>
mutate(erc_per = erc_sobiranistes / total_votantes,
psoe_per = psoe / total_votantes,
hab = if_else(poblacion > 15000, "Ciutat", "Poble")) |>
ggplot(aes(x = erc_per, y = psoe_per, col = hab)) +
geom_point() +
scale_color_manual(values = c("orange", "darkgreen"),
labels = c("Ciutat", "Poble"))Webs útils pels colors:
scale_size()scale_shape()scale_alpha()scale_linewidth()labs()
title, subtitle, caption…x, y, col, fill…theme_minimal(), theme_light()…
Totes les paletes a: ghibli::ghibli_palettes
WSJ, The Economist, Excel… ggthemes.
Al principi, consumeix molt de temps.
Veure info a ggplot2.
options(scipen=999) #removes scientific notation
elecc19 |>
filter(nombre_de_comunidad == "Cataluña") |>
transmute(poblacion,
ERC = erc_sobiranistes / total_votantes,
PSC = psoe / total_votantes) |>
pivot_longer(ERC:PSC, names_to = "partit", values_to = "perc") |>
ggplot(aes(x = log10(poblacion), y = perc, col = partit)) +
geom_point(size = 2, alpha = 0.6, show.legend = F) +
facet_wrap(facets = vars(partit),
nrow = 1) +
scale_color_manual(values = c("gold2", "firebrick2")) +
scale_y_continuous(labels = scales::label_percent(), name = "Percentatge de vot") +
scale_x_continuous(name = "Població", breaks = c(2, 3, 4, 5, 6),
labels = c(100, 1000, 10000, 100000, 1000000)) +
labs(title = "Vot a ERC i PSC a Catalunya",
subtitle = "Dades de vot per municipi a les eleccions generals de 2019",
caption = "Font: Ministeri de l'Interior") +
theme(text = element_text(size = 15))Feu servir Cheat Sheets & Manuals:
Metodologia Quantitativa (UPF)